<TagAttribute("actor","actr","????","????",2,1272)>
Public Class ACTOR_TAG
Inherits HaloTag
Public Const Extension as String = "actor"
Public Const FourCC as String = "actr"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 2
Public Const HeaderLength as Integer = 1272

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("more flags", 1, 20)>
Public more_flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("type", 1, 17)>
Public type as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
#Region "perception"

''' <summary>
''' maximum range of sight
''' </summary>
<TagField("max vision distance:world units", 1, 0)>
Public max_vision_distance as Single

''' <summary>
''' horizontal angle within which we see targets out to our maximum range
''' </summary>
<TagField("central vision angle:degrees", 1, 0)>
Public central_vision_angle as Single

''' <summary>
''' maximum horizontal angle within which we see targets at range
''' </summary>
<TagField("max vision angle:degrees", 1, 0)>
Public max_vision_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_2 as Byte()

''' <summary>
''' maximum horizontal angle within which we can see targets out of the corner of our eye
''' </summary>
<TagField("peripheral vision angle:degrees", 1, 0)>
Public peripheral_vision_angle as Single

''' <summary>
''' maximum range at which we can see targets our of the corner of our eye
''' </summary>
<TagField("peripheral distance:world units", 1, 0)>
Public peripheral_distance as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_3 as Byte()

''' <summary>
''' offset of gun from feet when standing (x=forward, y=left, z=up)
''' </summary>
<TagField("standing gun offset", 3, 2)>
Public standing_gun_offset as Single()

''' <summary>
''' offset of gun from feet when crouch (x=forward, y=left, z=up)
''' </summary>
<TagField("crouching gun offset", 3, 2)>
Public crouching_gun_offset as Single()

''' <summary>
''' maximum range at which sounds can be heard
''' </summary>
<TagField("hearing distance:world units", 1, 0)>
Public hearing_distance as Single

''' <summary>
''' random chance of noticing a dangerous enemy projectile (e.g. grenade)
''' </summary>
<TagField("notice projectile chance:[0,1]", 1, 0)>
Public notice_projectile_chance as Single

''' <summary>
''' random chance of noticing a dangerous vehicle
''' </summary>
<TagField("notice vehicle chance:[0,1]", 1, 0)>
Public notice_vehicle_chance as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_4 as Byte()

''' <summary>
''' time required to acknowledge a visible enemy when we are already in combat or searching for them
''' </summary>
<TagField("combat perception time:seconds", 1, 0)>
Public combat_perception_time as Single

''' <summary>
''' time required to acknowledge a visible enemy when we have been alerted
''' </summary>
<TagField("guard perception time:seconds", 1, 0)>
Public guard_perception_time as Single

''' <summary>
''' time required to acknowledge a visible enemy when we are not alerted
''' </summary>
<TagField("non-combat perception time:seconds", 1, 0)>
Public non as Single

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_6 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "movement"

''' <summary>
''' chance of running a dive animation when moving into cover
''' </summary>
<TagField("dive into cover chance:[0,1]", 1, 0)>
Public dive_into_cover_chance as Single

''' <summary>
''' chance of running an emerge animation when uncovering a target
''' </summary>
<TagField("emerge from cover chance:[0,1]", 1, 0)>
Public emerge_from_cover_chance as Single

''' <summary>
''' chance of running a dive animation when moving away from a grenade
''' </summary>
<TagField("dive from grenade chance:[0,1]", 1, 0)>
Public dive_from_grenade_chance as Single

''' <summary>
''' 
''' </summary>
<TagField("pathfinding radius:world units", 1, 0)>
Public pathfinding_radius as Single

''' <summary>
''' chance of not noticing that breakable surfaces have been destroyed
''' </summary>
<TagField("glass ignorance chance:[0,1]", 1, 0)>
Public glass_ignorance_chance as Single

''' <summary>
''' movement distance which is considered 'stationary' for considering whether we crouch
''' </summary>
<TagField("stationary movement dist:world units", 1, 0)>
Public stationary_movement_dist as Single

''' <summary>
''' distance which we allow sidestepping for flying units
''' </summary>
<TagField("free-flying sidestep:world units", 1, 0)>
Public free as Single

''' <summary>
''' we must be facing this close to our target before we start applying the throttle (default: 180 degrees)
''' </summary>
<TagField("begin moving angle:degrees", 1, 0)>
Public begin_moving_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "looking"

''' <summary>
''' how far we can turn our weapon
''' </summary>
<TagField("maximum aiming deviation:degrees", 2, 1)>
Public maximum_aiming_deviation as Single()

''' <summary>
''' how far we can turn our head
''' </summary>
<TagField("maximum looking deviation:degrees", 2, 1)>
Public maximum_looking_deviation as Single()

''' <summary>
''' how far we can turn our head left away from our aiming vector when not in combat
''' </summary>
<TagField("noncombat look delta L:degrees", 1, 0)>
Public noncombat_look_delta_L as Single

''' <summary>
''' how far we can turn our head right away from our aiming vector when not in combat
''' </summary>
<TagField("noncombat look delta R:degrees", 1, 0)>
Public noncombat_look_delta_R as Single

''' <summary>
''' how far we can turn our head left away from our aiming vector when in combat
''' </summary>
<TagField("combat look delta L:degrees", 1, 0)>
Public combat_look_delta_L as Single

''' <summary>
''' how far we can turn our head right away from our aiming vector when in combat
''' </summary>
<TagField("combat look delta R:degrees", 1, 0)>
Public combat_look_delta_R as Single

''' <summary>
''' range in which we select random directions to aim in
''' </summary>
<TagField("idle aiming range:degrees", 2, 1)>
Public idle_aiming_range as Single()

''' <summary>
''' range in which we select random directions to look at
''' </summary>
<TagField("idle looking range:degrees", 2, 1)>
Public idle_looking_range as Single()

''' <summary>
''' multiplier for how long we look at interesting events (zero = unchanged)
''' </summary>
<TagField("event look time modifier", 2, 1)>
Public event_look_time_modifier as Single()

''' <summary>
''' rate at which we change facing when looking around randomly when not in combat
''' </summary>
<TagField("noncombat idle facing:seconds", 2, 1)>
Public noncombat_idle_facing as Single()

''' <summary>
''' rate at which we change aiming directions when looking around randomly when not in combat
''' </summary>
<TagField("noncombat idle aiming:seconds", 2, 1)>
Public noncombat_idle_aiming as Single()

''' <summary>
''' rate at which we change look around randomly when not in combat
''' </summary>
<TagField("noncombat idle looking:seconds", 2, 1)>
Public noncombat_idle_looking as Single()

''' <summary>
''' rate at which we change facing when looking around randomly when guarding
''' </summary>
<TagField("guard idle facing:seconds", 2, 1)>
Public guard_idle_facing as Single()

''' <summary>
''' rate at which we change aiming directions when looking around randomly when guarding
''' </summary>
<TagField("guard idle aiming:seconds", 2, 1)>
Public guard_idle_aiming as Single()

''' <summary>
''' rate at which we change look around randomly when guarding
''' </summary>
<TagField("guard idle looking:seconds", 2, 1)>
Public guard_idle_looking as Single()

''' <summary>
''' rate at which we change facing when looking around randomly when searching or in combat
''' </summary>
<TagField("combat idle facing:seconds", 2, 1)>
Public combat_idle_facing as Single()

''' <summary>
''' rate at which we change aiming directions when looking around randomly when searching or in combat
''' </summary>
<TagField("combat idle aiming:seconds", 2, 1)>
Public combat_idle_aiming as Single()

''' <summary>
''' rate at which we change look around randomly when searching or in combat
''' </summary>
<TagField("combat idle looking:seconds", 2, 1)>
Public combat_idle_looking as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_8 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_9 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("DO NOT USE: weapon", 16, 10)>
Public do_not_use as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 268, -1)>
Public padding_10 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("DO NOT USE: projectile", 16, 10)>
Public do_not_use_1 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
#End Region
#Region "unopposable"

''' <summary>
''' danger level of an unreachable enemy which will trigger a retreat if it continues over time
''' </summary>
<TagField("unreachable danger trigger", 1, 17)>
Public unreachable_danger_trigger as Short

''' <summary>
''' danger level of a vehicle-based enemy which will trigger a retreat if it continues over time
''' </summary>
<TagField("vehicle danger trigger", 1, 17)>
Public vehicle_danger_trigger as Short

''' <summary>
''' danger level of an enemy player which will trigger a retreat if it continues over time
''' </summary>
<TagField("player danger trigger", 1, 17)>
Public player_danger_trigger as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_11 as Byte()

''' <summary>
''' how long it takes for an unopposable enemy that has the above danger level to trigger a retreat
''' </summary>
<TagField("danger trigger time:seconds", 2, 1)>
Public danger_trigger_time as Single()

''' <summary>
''' if this many of our friends are killed by an unopposable enemy, we trigger a retreat (zero = never use this as a retreat condition)
''' </summary>
<TagField("friends killed trigger", 1, 23)>
Public friends_killed_trigger as Short

''' <summary>
''' if this many of our friends are retreating from an unopposable enemy, we retreat as well (zero = never use this as a retreat condition)
''' </summary>
<TagField("friends retreating trigger", 1, 23)>
Public friends_retreating_trigger as Short

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_12 as Byte()

''' <summary>
''' how long we retreat from an unopposable enemy for
''' </summary>
<TagField("retreat time:seconds", 2, 1)>
Public retreat_time as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_13 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "panic"

''' <summary>
''' how long we hide in cover after being panicked
''' </summary>
<TagField("cowering time:seconds", 2, 1)>
Public cowering_time as Single()

''' <summary>
''' chance of panicking when we see a friend killed near us and the enemy is looking at us too
''' </summary>
<TagField("friend killed panic chance:[0,1]", 1, 0)>
Public friend_killed_panic_chance as Single

''' <summary>
''' if we see a friend of this type killed we have a chance of panicking
''' </summary>
<TagField("leader type", 1, 17)>
Public leader_type as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_14 as Byte()

''' <summary>
''' chance of panicking when we see a leader killed
''' </summary>
<TagField("leader killed panic chance:[0,1]", 1, 0)>
Public leader_killed_panic_chance as Single

''' <summary>
''' panic if we take this much body damage in a short period of time
''' </summary>
<TagField("panic damage threshold:[0,1]", 1, 0)>
Public panic_damage_threshold as Single

''' <summary>
''' the distance at which newly acknowledged props or weapon impacts are considered 'close' for surprise purposes
''' </summary>
<TagField("surprise distance:world units", 1, 0)>
Public surprise_distance as Single

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_15 as Byte()

''' <summary>
''' danger values: being aimed at: 0.7
''' an enemy shooting in our general direction: 1.2
''' an enemy shooting directly at us: 1.6
''' an enemy damaging us: 2.0
''' </summary>
#End Region
#Region "defensive"

''' <summary>
''' how long we stay behind cover after seeking cover
''' </summary>
<TagField("hide behind cover time:seconds", 2, 1)>
Public hide_behind_cover_time as Single()

''' <summary>
''' if this is non-zero then we will only seek cover if our target has not been visible recently
''' </summary>
<TagField("hide target-not-visible time:seconds", 1, 0)>
Public hide_target as Single

''' <summary>
''' elites and jackals only seek cover if their shield falls below this value
''' </summary>
<TagField("hide shield fraction:[0,1]", 1, 0)>
Public hide_shield_fraction as Single

''' <summary>
''' elites and jackals only come out from cover to attack if they have this much shields
''' </summary>
<TagField("attack shield fraction:[0,1]", 1, 0)>
Public attack_shield_fraction as Single

''' <summary>
''' elites and jackals only come out from cover to pursue if they have this much shields
''' </summary>
<TagField("pursue shield fraction:[0,1]", 1, 0)>
Public pursue_shield_fraction as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_16 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("defensive crouch type", 1, 17)>
Public defensive_crouch_type as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_17 as Byte()

''' <summary>
''' when in attacking mode, if our crouch type is based on shields, we crouch when our shields are below this number; if our crouch type is based on danger, we crouch when our danger is above this number
''' </summary>
<TagField("attacking crouch threshold", 1, 0)>
Public attacking_crouch_threshold as Single

''' <summary>
''' when in defending mode, if our crouch type is based on shields, we crouch when our shields are below this number; if our crouch type is based on danger, we crouch when our danger is above this number
''' </summary>
<TagField("defending crouch threshold", 1, 0)>
Public defending_crouch_threshold as Single

''' <summary>
''' minimum time to remain standing (zero = default)
''' </summary>
<TagField("min stand time:seconds", 1, 0)>
Public min_stand_time as Single

''' <summary>
''' minimum time to remain crouching (zero = default)
''' </summary>
<TagField("min crouch time:seconds", 1, 0)>
Public min_crouch_time as Single

''' <summary>
''' how much longer we hide behind cover for when in the defending state (zero = unchanged)
''' </summary>
<TagField("defending hide time modifier", 1, 0)>
Public defending_hide_time_modifier as Single

''' <summary>
''' when in attacking mode, we consider seeking cover or evading when our danger gets this high
''' </summary>
<TagField("attacking evasion threshold", 1, 0)>
Public attacking_evasion_threshold as Single

''' <summary>
''' when in defending mode, we consider seeking cover or evading when our danger gets this high
''' </summary>
<TagField("defending evasion threshold", 1, 0)>
Public defending_evasion_threshold as Single

''' <summary>
''' chance of seeking cover (otherwise we just evade)
''' </summary>
<TagField("evasion seek-cover chance:[0,1]", 1, 0)>
Public evasion_seek as Single

''' <summary>
''' minimum time period between evasion moves
''' </summary>
<TagField("evasion delay time:seconds", 1, 0)>
Public evasion_delay_time as Single

''' <summary>
''' maximum distance we will consider going to find cover (zero = default)
''' </summary>
<TagField("max seek-cover distance:world units", 1, 0)>
Public max_seek as Single

''' <summary>
''' how much damage we must take before we are allowed to seek cover (zero = always allowed to)
''' </summary>
<TagField("cover damage threshold:[0,1]", 1, 0)>
Public cover_damage_threshold as Single

''' <summary>
''' if our target sees us for this long while we are stalking them, our cover is blown and we do something else (zero = never stop stalking)
''' </summary>
<TagField("stalking discovery time:seconds", 1, 0)>
Public stalking_discovery_time as Single

''' <summary>
''' distance outside of which we don't bother stalking
''' </summary>
<TagField("stalking max distance:world units", 1, 0)>
Public stalking_max_distance as Single

''' <summary>
''' angle outside of which we must abandon a stationary facing direction and suffer any penalties
''' </summary>
<TagField("stationary facing angle:angle", 1, 0)>
Public stationary_facing_angle as Single

''' <summary>
''' how long we must stand up for after changing our fixed stationary facing
''' </summary>
<TagField("change-facing stand time:seconds", 1, 0)>
Public change as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_18 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "pursuit"

''' <summary>
''' time to look at target's position after it becomes visible
''' </summary>
<TagField("uncover delay time:seconds", 2, 1)>
Public uncover_delay_time as Single()

''' <summary>
''' time we search at target's position
''' </summary>
<TagField("target search time:seconds", 2, 1)>
Public target_search_time as Single()

''' <summary>
''' time we search at a pursuit position
''' </summary>
<TagField("pursuit-position time:seconds", 2, 1)>
Public pursuit_1 as Single()

''' <summary>
''' number of pursuit positions to check when in coordinated group search mode
''' </summary>
<TagField("num positions (coord):[0,n]", 1, 23)>
Public num_positions as Short

''' <summary>
''' number of pursuit positions to check when in normal search mode
''' </summary>
<TagField("num positions (normal):[0,n]", 1, 23)>
Public num_positions_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_19 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "berserk"

''' <summary>
''' how long we must wait between attempting melee attacks
''' </summary>
<TagField("melee attack delay:seconds", 1, 0)>
Public melee_attack_delay as Single

''' <summary>
''' fudge factor that offsets how far in front of the target we start our attack (negative = we try to time our attack so that we go _through_ the target). this should be close to zero, but might be bigger for suiciding units
''' </summary>
<TagField("melee fudge factor:world units", 1, 0)>
Public melee_fudge_factor as Single

''' <summary>
''' how long we can stay in the charging state trying to reach our target before we give up
''' </summary>
<TagField("melee charge time:seconds", 1, 0)>
Public melee_charge_time as Single

''' <summary>
''' we can launch leaping melee attacks at targets within these ranges (zero = can't leap)
''' </summary>
<TagField("melee leap range:world units", 2, 1)>
Public melee_leap_range as Single()

''' <summary>
''' how fast we spring at targets when launching a leaping melee attack
''' </summary>
<TagField("melee leap velocity:world units per tick", 1, 0)>
Public melee_leap_velocity as Single

''' <summary>
''' chance of launching a leaping melee attack at a ground-based target (we always leap at flying targets)
''' </summary>
<TagField("melee leap chance:[0,1]", 1, 0)>
Public melee_leap_chance as Single

''' <summary>
''' fraction that controls how ballistic our leaping melee trajectory is
''' </summary>
<TagField("melee leap ballistic:[0,1]", 1, 0)>
Public melee_leap_ballistic as Single

''' <summary>
''' amount of body damage in a short time that makes us berserk
''' </summary>
<TagField("berserk damage amount:[0,1]", 1, 0)>
Public berserk_damage_amount as Single

''' <summary>
''' how low our body health must get before we will consider berserking
''' </summary>
<TagField("berserk damage threshold:[0,1]", 1, 0)>
Public berserk_damage_threshold as Single

''' <summary>
''' if we ever get this close to a target, we berserk
''' </summary>
<TagField("berserk proximity:world units", 1, 0)>
Public berserk_proximity as Single

''' <summary>
''' when we are this close to a target, we check to see if they're getting away and if so blow up
''' </summary>
<TagField("suicide sensing dist:world units", 1, 0)>
Public suicide_sensing_dist as Single

''' <summary>
''' chance of berserking when we have a dangerous projectile stuck to us
''' </summary>
<TagField("berserk grenade chance:[0,1]", 1, 0)>
Public berserk_grenade_chance as Single

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_20 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "firing positions"

''' <summary>
''' time after which we decide to change guard positions (zero = never)
''' </summary>
<TagField("guard position time:seconds", 2, 1)>
Public guard_position_time as Single()

''' <summary>
''' time after which we change combat firing positions
''' </summary>
<TagField("combat position time:seconds", 2, 1)>
Public combat_position_time as Single()

''' <summary>
''' distance we try and stay from our last discarded firing position
''' </summary>
<TagField("old position avoid dist:world units", 1, 0)>
Public old_position_avoid_dist as Single

''' <summary>
''' distance we try and stay from any friends
''' </summary>
<TagField("friend avoid dist:world units", 1, 0)>
Public friend_avoid_dist as Single

''' <summary>
''' 
''' </summary>
<TagField("", 40, -1)>
Public padding_21 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "communication"

''' <summary>
''' time between idle vocalizations when we are not in combat
''' </summary>
<TagField("noncombat idle speech time:seconds", 2, 1)>
Public noncombat_idle_speech_time as Single()

''' <summary>
''' time between idle vocalizations when we are in combat or searching
''' </summary>
<TagField("combat idle speech time:seconds", 2, 1)>
Public combat_idle_speech_time as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 48, -1)>
Public padding_22 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 128, -1)>
Public padding_23 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("DO NOT USE: major upgrade", 16, 10)>
Public do_not_use_2 as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 48, -1)>
Public padding_24 as Byte()
#End Region

End Class
